<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::HyperGraph Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classg2o_1_1_hyper_graph.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="classg2o_1_1_hyper_graph-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::HyperGraph Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Class that models a directed Hyper-Graph.  
 <a href="classg2o_1_1_hyper_graph.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="hyper__graph_8h_source.html">hyper_graph.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::HyperGraph:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_hyper_graph__inherit__graph.svg" width="166" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract <a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html" title="Abstract Edge class. ">Edge</a> class.  <a href="classg2o_1_1_hyper_graph_1_1_edge.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structg2o_1_1_hyper_graph_1_1_hyper_graph_element.html">HyperGraphElement</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">base hyper graph element, specialized in vertex and edge  <a href="structg2o_1_1_hyper_graph_1_1_hyper_graph_element.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">abstract <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html" title="abstract Vertex, your types must derive from that one ">Vertex</a>, your types must derive from that one  <a href="classg2o_1_1_hyper_graph_1_1_vertex.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a5e2970e236c0dcb4eff7c205d7b6b4ae"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a></td></tr>
<tr class="separator:a5e2970e236c0dcb4eff7c205d7b6b4ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b8fda20e1b03e92aeceeac6e8218b73"><td class="memItemLeft" align="right" valign="top">typedef std::bitset&lt; <a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HyperGraph::HGET_NUM_ELEMS</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a7b8fda20e1b03e92aeceeac6e8218b73">GraphElemBitset</a></td></tr>
<tr class="separator:a7b8fda20e1b03e92aeceeac6e8218b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af603119d5d3475aed6e34ee9d701b69e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">HyperGraphElementType</a> { <br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea4a278c79154a0d4c381a7e265d7048f5">HGET_VERTEX</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69ea32ab1204ad3640d91c59ce6fffe2e580">HGET_EDGE</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eaec8dd0de424ff24a18d3ba5ed3864f79">HGET_PARAMETER</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafdb05add70f035dced2b173de8431408">HGET_CACHE</a>, 
<br />
&#160;&#160;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa">HGET_DATA</a>, 
<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HGET_NUM_ELEMS</a>
<br />
 }<tr class="memdesc:af603119d5d3475aed6e34ee9d701b69e"><td class="mdescLeft">&#160;</td><td class="mdescRight">enum of all the types we have in our graphs  <a href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:af603119d5d3475aed6e34ee9d701b69e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9339534c99300a0ddac87ba976ef188c"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">VertexContainer</a></td></tr>
<tr class="separator:a9339534c99300a0ddac87ba976ef188c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97307eac064ebf4b3e2cfbf0718035b5"><td class="memItemLeft" align="right" valign="top">typedef std::tr1::unordered_map&lt; int, <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a></td></tr>
<tr class="separator:a97307eac064ebf4b3e2cfbf0718035b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a703938cdb4bb636860eed55a2489d70c"><td class="memItemLeft" align="right" valign="top">typedef std::set&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">VertexSet</a></td></tr>
<tr class="separator:a703938cdb4bb636860eed55a2489d70c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0f1d35009a2879b238c8148c33485c89"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a0f1d35009a2879b238c8148c33485c89">addEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *e)</td></tr>
<tr class="memdesc:a0f1d35009a2879b238c8148c33485c89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an edge to the graph.  <a href="#a0f1d35009a2879b238c8148c33485c89">More...</a><br /></td></tr>
<tr class="separator:a0f1d35009a2879b238c8148c33485c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ef87ba3479827b24c6fc29c5fc3aa21"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a7ef87ba3479827b24c6fc29c5fc3aa21">addVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v)</td></tr>
<tr class="memdesc:a7ef87ba3479827b24c6fc29c5fc3aa21"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a vertex to the graph.  <a href="#a7ef87ba3479827b24c6fc29c5fc3aa21">More...</a><br /></td></tr>
<tr class="separator:a7ef87ba3479827b24c6fc29c5fc3aa21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74f0d7392e67762a85799db72a58a94c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a74f0d7392e67762a85799db72a58a94c">changeId</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v, int newId)</td></tr>
<tr class="memdesc:a74f0d7392e67762a85799db72a58a94c"><td class="mdescLeft">&#160;</td><td class="mdescRight">changes the id of a vertex already in the graph, and updates the bookkeeping @ returns false if the vertex is not in the graph;  <a href="#a74f0d7392e67762a85799db72a58a94c">More...</a><br /></td></tr>
<tr class="separator:a74f0d7392e67762a85799db72a58a94c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b629dff2928dbd704ca81f24858e72f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a6b629dff2928dbd704ca81f24858e72f">clear</a> ()</td></tr>
<tr class="memdesc:a6b629dff2928dbd704ca81f24858e72f"><td class="mdescLeft">&#160;</td><td class="mdescRight">clears the graph and empties all structures.  <a href="#a6b629dff2928dbd704ca81f24858e72f">More...</a><br /></td></tr>
<tr class="separator:a6b629dff2928dbd704ca81f24858e72f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4edfd2ef4bf235cf78031c505cfd2fcc"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a4edfd2ef4bf235cf78031c505cfd2fcc">edges</a> () const</td></tr>
<tr class="separator:a4edfd2ef4bf235cf78031c505cfd2fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9f023fe2fb491ef9af873b9e683006"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a2f9f023fe2fb491ef9af873b9e683006">edges</a> ()</td></tr>
<tr class="separator:a2f9f023fe2fb491ef9af873b9e683006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a833632b111cfc7cf08b842ae3cb43d41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a833632b111cfc7cf08b842ae3cb43d41">HyperGraph</a> ()</td></tr>
<tr class="memdesc:a833632b111cfc7cf08b842ae3cb43d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructs an empty hyper graph  <a href="#a833632b111cfc7cf08b842ae3cb43d41">More...</a><br /></td></tr>
<tr class="separator:a833632b111cfc7cf08b842ae3cb43d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33e5a60705ce673d647aa1613da9d99b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a33e5a60705ce673d647aa1613da9d99b">removeEdge</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *e)</td></tr>
<tr class="memdesc:a33e5a60705ce673d647aa1613da9d99b"><td class="mdescLeft">&#160;</td><td class="mdescRight">removes a vertex from the graph. Returns true on success (edge was present)  <a href="#a33e5a60705ce673d647aa1613da9d99b">More...</a><br /></td></tr>
<tr class="separator:a33e5a60705ce673d647aa1613da9d99b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ab8302aa027d513253387bba9e0dd5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a97ab8302aa027d513253387bba9e0dd5">removeVertex</a> (<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *v)</td></tr>
<tr class="memdesc:a97ab8302aa027d513253387bba9e0dd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">removes a vertex from the graph. Returns true on success (vertex was present)  <a href="#a97ab8302aa027d513253387bba9e0dd5">More...</a><br /></td></tr>
<tr class="separator:a97ab8302aa027d513253387bba9e0dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07fe8bd9982a66ba34e83dff8317ea2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">vertex</a> (int id)</td></tr>
<tr class="memdesc:ab07fe8bd9982a66ba34e83dff8317ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="#ab07fe8bd9982a66ba34e83dff8317ea2">More...</a><br /></td></tr>
<tr class="separator:ab07fe8bd9982a66ba34e83dff8317ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac117806d17a7e7ad7f8db42f2864cac9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ac117806d17a7e7ad7f8db42f2864cac9">vertex</a> (int id) const</td></tr>
<tr class="memdesc:ac117806d17a7e7ad7f8db42f2864cac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present  <a href="#ac117806d17a7e7ad7f8db42f2864cac9">More...</a><br /></td></tr>
<tr class="separator:ac117806d17a7e7ad7f8db42f2864cac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95fcf7cd9d89562b2c26d99ede3548ed"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a95fcf7cd9d89562b2c26d99ede3548ed">vertices</a> () const</td></tr>
<tr class="separator:a95fcf7cd9d89562b2c26d99ede3548ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650107c875ef6f43d438d7d3e2ddf797"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a650107c875ef6f43d438d7d3e2ddf797">vertices</a> ()</td></tr>
<tr class="separator:a650107c875ef6f43d438d7d3e2ddf797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef6e1d65e0f9171a518bce3fc559693"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a0ef6e1d65e0f9171a518bce3fc559693">~HyperGraph</a> ()</td></tr>
<tr class="memdesc:a0ef6e1d65e0f9171a518bce3fc559693"><td class="mdescLeft">&#160;</td><td class="mdescRight">destroys the hyper-graph and all the vertices of the graph  <a href="#a0ef6e1d65e0f9171a518bce3fc559693">More...</a><br /></td></tr>
<tr class="separator:a0ef6e1d65e0f9171a518bce3fc559693"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:afe4ae6e9ef05c8bded2b1b30e1886b36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#afe4ae6e9ef05c8bded2b1b30e1886b36">_edges</a></td></tr>
<tr class="separator:afe4ae6e9ef05c8bded2b1b30e1886b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83132c77c8d0896581d168cbc72f673a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#a83132c77c8d0896581d168cbc72f673a">_vertices</a></td></tr>
<tr class="separator:a83132c77c8d0896581d168cbc72f673a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ab19a6e0681e2b30d48740cebf553c7eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#ab19a6e0681e2b30d48740cebf553c7eb">HyperGraph</a> (const <a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> &amp;)</td></tr>
<tr class="separator:ab19a6e0681e2b30d48740cebf553c7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aace0adc6b03e56bf6b554368d49dcf88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_hyper_graph.html#aace0adc6b03e56bf6b554368d49dcf88">operator=</a> (const <a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> &amp;)</td></tr>
<tr class="separator:aace0adc6b03e56bf6b554368d49dcf88"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class that models a directed Hyper-Graph. </p>
<p>An hyper graph is a graph where an edge can connect one or more nodes. Both Vertices and Edges of an hyoper graph derive from the same class <a class="el" href="structg2o_1_1_hyper_graph_1_1_hyper_graph_element.html" title="base hyper graph element, specialized in vertex and edge ">HyperGraphElement</a>, thus one can implement generic algorithms that operate transparently on edges or vertices (see <a class="el" href="classg2o_1_1_hyper_graph_action.html" title="Abstract action that operates on an entire graph. ">HyperGraphAction</a>).</p>
<p>The vertices are uniquely identified by an int id, while the edges are identfied by their pointers. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a5e2970e236c0dcb4eff7c205d7b6b4ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::set&lt;<a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a>*&gt; <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">g2o::HyperGraph::EdgeSet</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a7b8fda20e1b03e92aeceeac6e8218b73"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::bitset&lt;<a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6">HyperGraph::HGET_NUM_ELEMS</a>&gt; <a class="el" href="classg2o_1_1_hyper_graph.html#a7b8fda20e1b03e92aeceeac6e8218b73">g2o::HyperGraph::GraphElemBitset</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a9339534c99300a0ddac87ba976ef188c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a>*&gt; <a class="el" href="classg2o_1_1_hyper_graph.html#a9339534c99300a0ddac87ba976ef188c">g2o::HyperGraph::VertexContainer</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a97307eac064ebf4b3e2cfbf0718035b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::tr1::unordered_map&lt;int, <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a>*&gt; <a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">g2o::HyperGraph::VertexIDMap</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a703938cdb4bb636860eed55a2489d70c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::set&lt;<a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a>*&gt; <a class="el" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">g2o::HyperGraph::VertexSet</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="af603119d5d3475aed6e34ee9d701b69e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">g2o::HyperGraph::HyperGraphElementType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>enum of all the types we have in our graphs </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69ea4a278c79154a0d4c381a7e265d7048f5"></a>HGET_VERTEX&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69ea32ab1204ad3640d91c59ce6fffe2e580"></a>HGET_EDGE&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69eaec8dd0de424ff24a18d3ba5ed3864f79"></a>HGET_PARAMETER&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69eafdb05add70f035dced2b173de8431408"></a>HGET_CACHE&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa"></a>HGET_DATA&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a id="af603119d5d3475aed6e34ee9d701b69eafe77ef3192f9be61982957b0a3e2f6a6"></a>HGET_NUM_ELEMS&#160;</td><td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a833632b111cfc7cf08b842ae3cb43d41"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">g2o::HyperGraph::HyperGraph </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>constructs an empty hyper graph </p>

</div>
</div>
<a id="a0ef6e1d65e0f9171a518bce3fc559693"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::HyperGraph::~HyperGraph </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>destroys the hyper-graph and all the vertices of the graph </p>

</div>
</div>
<a id="ab19a6e0681e2b30d48740cebf553c7eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::HyperGraph::HyperGraph </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0f1d35009a2879b238c8148c33485c89"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::HyperGraph::addEdge </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds an edge to the graph. </p>
<p>If the edge is already in the graph, it does nothing and returns false. Otherwise it returns true. </p>

<p>Reimplemented in <a class="el" href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a7ef87ba3479827b24c6fc29c5fc3aa21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::HyperGraph::addVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>adds a vertex to the graph. </p>
<p>The id of the vertex should be set before invoking this function. the function fails if another vertex with the same id is already in the graph. returns true, on success, or false on failure. </p>

<p>Reimplemented in <a class="el" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">g2o::OptimizableGraph</a>.</p>

</div>
</div>
<a id="a74f0d7392e67762a85799db72a58a94c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::HyperGraph::changeId </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>newId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>changes the id of a vertex already in the graph, and updates the bookkeeping @ returns false if the vertex is not in the graph; </p>

</div>
</div>
<a id="a6b629dff2928dbd704ca81f24858e72f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::HyperGraph::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>clears the graph and empties all structures. </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#a4881e4ac9ba9a58d4e249dc03ef9683d">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="a4edfd2ef4bf235cf78031c505cfd2fcc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a>&amp; g2o::HyperGraph::edges </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the set of edges of the hyper graph </dd></dl>

</div>
</div>
<a id="a2f9f023fe2fb491ef9af873b9e683006"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a>&amp; g2o::HyperGraph::edges </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the set of edges of the hyper graph </dd></dl>

</div>
</div>
<a id="aace0adc6b03e56bf6b554368d49dcf88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a>&amp; g2o::HyperGraph::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a33e5a60705ce673d647aa1613da9d99b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::HyperGraph::removeEdge </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_edge.html">Edge</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>removes a vertex from the graph. Returns true on success (edge was present) </p>

</div>
</div>
<a id="a97ab8302aa027d513253387bba9e0dd5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool g2o::HyperGraph::removeVertex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">Vertex</a> *&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>removes a vertex from the graph. Returns true on success (vertex was present) </p>

<p>Reimplemented in <a class="el" href="classg2o_1_1_sparse_optimizer.html#a0fb2a5e2b250bf2530a600f6dcaad03f">g2o::SparseOptimizer</a>.</p>

</div>
</div>
<a id="ab07fe8bd9982a66ba34e83dff8317ea2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> * g2o::HyperGraph::vertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present </p>

</div>
</div>
<a id="ac117806d17a7e7ad7f8db42f2864cac9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> * g2o::HyperGraph::vertex </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>returns a vertex <em>id</em> in the hyper-graph, or 0 if the vertex id is not present </p>

</div>
</div>
<a id="a95fcf7cd9d89562b2c26d99ede3548ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a>&amp; g2o::HyperGraph::vertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the map <em>id -&gt; vertex</em> where the vertices are stored </dd></dl>

</div>
</div>
<a id="a650107c875ef6f43d438d7d3e2ddf797"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a>&amp; g2o::HyperGraph::vertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the map <em>id -&gt; vertex</em> where the vertices are stored </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="afe4ae6e9ef05c8bded2b1b30e1886b36"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">EdgeSet</a> g2o::HyperGraph::_edges</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a83132c77c8d0896581d168cbc72f673a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_hyper_graph.html#a97307eac064ebf4b3e2cfbf0718035b5">VertexIDMap</a> g2o::HyperGraph::_vertices</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="hyper__graph_8h_source.html">hyper_graph.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="hyper__graph_8cpp.html">hyper_graph.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="classg2o_1_1_hyper_graph.html">HyperGraph</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
